/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package angrypainters.components;

import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.scene.paint.Color;

/**
 *Model class holding the game logic
 * @author A7med
 */
public class GameModel {
    private SimpleBooleanProperty ownTurn;
    private double hits=0;
    private double opponentHits=0;
    private SimpleDoubleProperty ownScore=new SimpleDoubleProperty(0);
    private SimpleDoubleProperty opponentScore=new SimpleDoubleProperty(0);
    private SimpleBooleanProperty gameWon;
    private Player currentPlayer=Player.host;
    private Player playerType;
    private Color ownColor;
    private Color opponentColor;
    private SimpleDoubleProperty markSpeed;
    private SimpleBooleanProperty baloonVisible;
    private SimpleBooleanProperty showBirds;
    private SimpleDoubleProperty markX;
    private SimpleDoubleProperty markY;

    public SimpleBooleanProperty isOwnTurn() {
        return ownTurn;
    }

    public void setOwnTurn(SimpleBooleanProperty ownTurn) {
        this.ownTurn = ownTurn;
    }

    public double getOwnScore() {
        return ownScore.get();
    }

    public void setOwnScore(double ownScore) {
        this.ownScore.set(ownScore); 
    }

    public double getOpponentScore() {
        return opponentScore.get();
    }

    public void setOpponentScore(double opponentScore) {
        this.opponentScore.set(opponentScore);
    }

     public SimpleDoubleProperty getOwnScoreProperty() {
        return ownScore;
    }

    public void setOwnScoreProperty(SimpleDoubleProperty ownScore) {
        this.ownScore=ownScore; 
    }

    public SimpleDoubleProperty getOpponentScoreProperty() {
        return opponentScore;
    }

    public void setOpponentScoreProperty(SimpleDoubleProperty opponentScore) {
        this.opponentScore=opponentScore;
    }
    public SimpleBooleanProperty getGameWon() {
        return gameWon;
    }

    public void setGameWon(SimpleBooleanProperty gameWon) {
        this.gameWon = gameWon;
    }

    public Player getCurrentPlayer() {
        return currentPlayer;
    }

    public void setCurrentPlayer(Player currentPlayer) {
        this.currentPlayer = currentPlayer;
    }

    public SimpleDoubleProperty getMarkSpeed() {
        return markSpeed;
    }

    public void setMarkSpeed(SimpleDoubleProperty markSpeed) {
        this.markSpeed = markSpeed;
    }

    public SimpleBooleanProperty getBaloonVisible() {
        return baloonVisible;
    }

    public void setBaloonVisible(SimpleBooleanProperty baloonVisible) {
        this.baloonVisible = baloonVisible;
    }

    public SimpleBooleanProperty getShowBirds() {
        return showBirds;
    }

    public void setShowBirds(SimpleBooleanProperty showBirds) {
        this.showBirds = showBirds;
    }

    public SimpleDoubleProperty getMarkX() {
        return markX;
    }

    public void setMarkX(SimpleDoubleProperty markX) {
        this.markX = markX;
    }

    public SimpleDoubleProperty getMarkY() {
        return markY;
    }

    public void setMarkY(SimpleDoubleProperty markY) {
        this.markY = markY;
    }

    public Player getPlayerType() {
        return playerType;
    }

    public void setPlayerType(Player playerType) {
        this.playerType = playerType;
    }

    public Color getOwnColor() {
        return ownColor;
    }

    public void setOwnColor(Color ownColor) {
        this.ownColor = ownColor;
    }

    public Color getOpponentColor() {
        return opponentColor;
    }

    public void setOpponentColor(Color opponentColor) {
        this.opponentColor = opponentColor;
    }

    public double getHits() {
        return hits;
    }

    public void setHits(double hits) {
        this.hits = hits;
    }

    public double getOpponentHits() {
        return opponentHits;
    }

    public void setOpponentHits(double opponentHits) {
        this.opponentHits = opponentHits;
    }
    
    
    
}
